home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / et / et-2_2.lha / et2.2 / INSTALL < prev    next >
Text File  |  1990-12-22  |  11KB  |  280 lines

  1. Installing ET++2.2
  2. ******************
  3. This is the Installation Guide for ET++2.2.
  4.  
  5. Send comments to:
  6.  
  7.     Andre Weinand
  8.     Union Bank of Switzerland
  9.     UBILAB (Union Bank Informatics Laboratory)
  10.     Bahnhofstrasse 45
  11.     P.O.Box
  12.     CH-8021 Zurich
  13.     Switzerland
  14.  
  15.     phone: +41-1-236-40-53
  16.     fax:   +41-1-236-46-71
  17.     e-mail: weinand@ifi.unizh.ch
  18.     
  19. 0 Hardcopy Documentation
  20. ------------------------
  21.  
  22. The ET_DIR/doc directory includes:
  23. regex.txt:    a description of the regular expressions
  24.  
  25. ET++.sit.hqx a binhexed StuffIt archive including:
  26.     ET++Intro: an introduction to ET++ (same as in ET++2.0)
  27.     ET++Paper: the paper "Design and Implementation of ET++
  28. both papers are Word 4.0 documents created on a Macintosh.
  29.  
  30. If you do not have access to a Macintosh to print the above
  31. documents send us your SMAIL address and we will send you a hardcopy.
  32.  
  33.  
  34. 1.      Installation
  35. --------------------
  36. The distribution is organized hierarchically as follows:
  37.  
  38. et      
  39.     .cshrc  example profile (mandatory environment variables)
  40.     CSHRC   same as above
  41.     CHANGES*    change notes 
  42.     src     source code of ET++ class library
  43.         MALLOC  extended malloc
  44.         SUNWINDOW       interface for SunView/SunWindows
  45.         SERVER  a window server running under SunView
  46.                         (not supported in this release)
  47.         XSERVER interface for X11R4
  48.         NEWS    interface for the NeWS window system
  49.                         (not supported in this release)
  50.         PIC     interface for producing pic output (experimental)
  51.         POSTSCRIPT      interface for producing postscript output
  52.         SUNOS   interface for SUNOS (or other BSD based Unix systems)
  53.         PROGENV ET++'s programming environment
  54.         images  bitmap images
  55.     applications    example applications developed with ET++
  56.     postscript      postscript libraries
  57.     IO              stream classes
  58.     doc             compressed postscript files
  59.     fonts           fonts in bdf format
  60.     sunfonts        vfonts for SunWindow (initially empty)
  61.     xfonts          snf fonts for X11 (initially empty)
  62.     owfonts         fonts for OpenWindows 2.0 (initially empty)
  63.     bin             utility programs for ET++
  64.     dyn.sparc       *.o files for dynamic loading/linking with "app"
  65.                         (initially empty)
  66.     util    
  67.         makedepend      public domain makefile dependency generator
  68.         makemap         utility to extract informations about
  69.                                 member functions in a source file
  70.  
  71. B.      Hardware and Software Requirements
  72. ------------------------------------------
  73. To read the ET++ tape requires about 10 MB of disk space. A full ET++ 
  74. installation requires about 40 MB of disk space. The following table 
  75. gives some numbers for the sizes of the directories after all the fonts 
  76. and example applications are compiled:
  77.  
  78. src             8 MB
  79. sunfonts        1 MB
  80. xfonts          1.6 MB
  81. applications    25 MB
  82.  
  83. Supported C++ Compilers:
  84.  
  85. * AT&T C++ 2.0, SUN C++2.0:     
  86. ET++2.0 is 2.0 friendly but does neither use nor 
  87. support multiple inheritance!
  88.  
  89. * g++1.37.1 (NEW!!)
  90. If g++ is used with ET++ do not use the libg++ version of malloc.
  91. An application using this malloc will immediately crash with
  92. "malloc/free/realloc: clobbered space detected". 
  93. To disable placeing the libg++ version of malloc in libg++.a
  94. build it with: 
  95. XTRAFLAGS = -DNO_LIBGXX_MALLOC
  96.  
  97. Supported Hardware and OS:
  98.  
  99. * Sun OS 4.x (680xx, Sparc), SunWindows, X11R4
  100.  
  101. * Sony News 1850, X11R3
  102.  
  103. The ET++ collection classes are window system independent and can be 
  104. used on all platforms.
  105.  
  106. C.      Installation Procedure
  107. ------------------------------
  108. The ET++ software is location independent, e.g. it can be installed at any 
  109. place in the file system. Choose the directory where ET++ should be 
  110. installed, for example /local. Extract the files:
  111.  
  112. tar -xvfb /dev/rst0 126
  113.  
  114. The standard location for ET++ is /local/et. If the standard location is not 
  115. used the environment variable ET_DIR has to be set accordingly. For 
  116. example, if ET++ is installed in /home/oolibs/et, ET_DIR has to be set to 
  117. /home/oolibs/et. The installation directory is referred to as ET_DIR in the 
  118. following explanations.
  119.  
  120. 1.      Configuring ET++ for your C++ Compiler
  121. All compiler dependencies of ET++ are located in the etCC script 
  122. stored in ET_DIR/bin. Adapt this script to your site specific C++ 
  123. installation. 
  124. At the end of this script the utility makemap is called. Makemap
  125. extracts information about member functions which is used by the
  126. source browser.
  127. Makemap generates an output file with the same name as the source file 
  128. and the suffix .map. The file is stored in a directory .MAP. If this 
  129. directory does not exist no map-files will be generated. Instead of using 
  130. map-files you can set the environment variable ET_NO_MAPFILES and 
  131. the source browser will extract the member functions on the fly (this 
  132. approach is slower than using map-files).
  133.  
  134. If ET++ is compiled with g++ the LD macros in ET_DIR/makefile and
  135. ET_DIR/src/makefile have to be modified to refer to gnu-ld.
  136.  
  137. 2.      Configuring the ET++ library in /src/makefile
  138. The ET++ class library includes support for several different window systems 
  139. and printing devices. The makefile in ET_DIR/src includes in the section 
  140. entitled configuration some macros to tailor ET++ to a specific 
  141. environment.
  142.  
  143.     Selecting the Window System Interfaces
  144. By default are the window system interfaces for SunView/SunWindows and X11
  145. included.
  146.  
  147. WS_OFILES       =       $(XSERVER) $(SUNWINDOW)
  148. WS_IFDEFS       =       -DWS_X -DWS_SUNWINDOW
  149. WS_DIRS         =       SUN XSERVER
  150.  
  151. To remove a window system interface, delete the corresponding entry 
  152. from these lines. The macro names stand for:
  153.  
  154. XSERVER         interface for X11.4
  155. SUNWINDOW       interface for sunwindow/sunview
  156.  
  157. The following example shows the definition of the macros for a version 
  158. of ET++ which includes only the X interface
  159.  
  160. WS_OFILES       =       $(XSERVER)
  161. WS_IFDEFS       =       -DWS_X
  162. WS_DIRS         =       XSERVER
  163.  
  164.     Selecting the Printers
  165. ET++ supports generating either postscript or pic output. By default both 
  166. formats are included. To remove a printer interface, adapt the macros as 
  167. described above.
  168.  
  169. PR_OFILES       =       $(POSTSCRIPT) $(PIC)
  170. PR_IFDEFS       =       -DPR_POSTSCRIPT -DPR_PIC
  171. PR_DIRS         =       POSTSCRIPT PIC
  172.  
  173.     Operating System Interface
  174. Currently, only an interface for SunOS4.* or similar BSD systems is 
  175. supported.
  176.  
  177.     Programming Environment
  178. By default the ET++ library and therefore all the ET++ applications linked 
  179. with it include a programming environment (an inspector, and several browsers).
  180. These tools add 100KB to an ET++ application but have no 
  181. influence on the execution speed. In order to remove this inspecting and 
  182. browsing code in a final version of an application modify the macros as 
  183. shown below:
  184.  
  185. PE_OFILES       =       # $(ET_PROGENV)
  186. PE_IFDEFS       =       # -DET_PROGENV
  187. PE_DIRS         =       # PROGENV
  188.  
  189. Recompile the class library with make config and relink your 
  190. application. make config should be called whenever the PE_ or the WS_ 
  191. macros are changed.
  192.  
  193. 3.      Fonts
  194. -------------
  195. The ET++ distribution includes fonts for X11 and SunWindow in bdf
  196. format. By default the ET++ installation will generate binary versions
  197. of these fonts for sunwindow, X11 and OpenWindows. The compiled fonts
  198. are stored in:    
  199.  
  200. sunfonts:     fonts for sunwindow
  201. xfonts:        fonts for X11
  202. owfonts:    fonts for OpenWindows
  203.  
  204. The binary versions of the fonts to be generated
  205. can be defined in ET_DIR/makefile.
  206. To avoid the creation of binary fonts for a specific window system
  207. remove the corresponding directory name from the DIRS macro:
  208.  
  209. DIRS    = util src applications examples sunfonts xfonts owfonts.
  210.  
  211. You should check whether the font compilers in ET_DIR/xfonts/Makefile
  212. and ET_DIR/owfonts/makefile match your local environment.
  213.  
  214. If you are running ET++ applications under OpenWindows or
  215. X11 do not forget to set the font path with xset +fp ET_DIR/???fonts.
  216.  
  217. 5.      Build the ET++ Library and the Example Application "hello"
  218. ------------------------------------------------------------------
  219. Executing make in ET_DIR will compile the ET++ library,
  220. the example application "hello" (ET_DIR/applications/hello), and
  221. the fonts. After this step you can check the installation by 
  222. executing the "hello" application in ET_DIR/applications/hello.
  223.  
  224. The ET++ Library is not generated as an
  225. archive including the ET++ object files but as a relocatable object file with 
  226. the name et.o. Experience has shown that this approach speeds up 
  227. linking of an ET++ application. An ET++ application linked with an 
  228. archive is not significantly smaller than an application linked with a 
  229. relocatable object file containing all the object files.
  230.  
  231. 6.      Compile some of the ET++ Example Applications
  232. -----------------------------------------------------
  233. Now you are ready to build the ET++ example applications. They are 
  234. compiled by calling make in the directory ET_DIR/applications. More 
  235. information about these example applications can be found in "ET++ 
  236. Introduction".
  237.  
  238. 7.      Compiling ET++ Support Applications
  239. -------------------------------------------
  240. In order to support cut/copy/paste operations among different 
  241. application processes under SunWindow, a special clipboard server is 
  242. required. If the clipboard server is not running applications can only 
  243. execute cut/copy/paste operations between their own windows. Make 
  244. clipboard in ET_DIR/src/SUNWINDOW compiles the SunWindow clipboard server.
  245. The clipboard is started by calling clipboard.
  246.  
  247. The application app generated with make app starts up any ET++ 
  248. application and dynamically links the missing classes for this 
  249. application. App is called with the name of the application as argument, 
  250. e.g. app micky, after dynamically linking all the classes required by this 
  251. application micky will start up as usual. The search path to be used to 
  252. find object files can be set in the environment variable ET_DYN_PATH. 
  253.  
  254.     Notice: app is (still) not completely finished yet. 
  255.         We are waiting for better
  256.         support for dynamic C++ loading and linking from the operating
  257.         system.  The command make install moves these additional
  258.         applications to /bin. (Not tested with g++).
  259.  
  260. 10.     Misc
  261. ------------
  262.  
  263.     Streams
  264. In order to be independent from the stream-classes provided with C++ 
  265. compilers ET++ includes in the directory ET_DIR/src/IO its own 
  266. implementation of stream classes. This classes are modeled after the 
  267. stream classes of AT&T cfront 1.2.
  268.  
  269.     Environment Variables
  270. The following environment variables control the behaviour of ET++:
  271.  
  272. ET_DIR                  The root directory for ET++ files.
  273. ET_FONT_SIZE            The default font size
  274. ET_SRC_PATH             The directories to search for source code.
  275. ET_DYN_PATH             The directories to search for object files.
  276. ET_NO_STYLEDCODE        Set to prevent pretty-printing of source code.
  277. ET_NO_MAPFILES          Do not use map-files
  278. ET_DISPLAY              For the SunWindow server system.
  279.  
  280.